﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace controlWork_24Jan
{
    class Program
    {
        static void Main(string[] args)
        {
            //Создать класс Human.В классе определить поля -
            //Имя, Фамилия, Дата рождения. Имя и фамилия не могут быть null.
            //Дата рождения не может быть из будущего. Реализовать свойства для установки и считывания значений полей.
            //Создать конструктор позволяющий установить значения полей класса при создании.
            //Создать 2 экземпляра класса. Вывести значение полей экземпляров на экран.
            string imiachko = "Никки";
            string familiya = "Раш";
            Human human = new Human(imiachko, familiya, new DateTime(1990, 05, 7));

            //DateTime dayOfBirth = new DateTime(1990, 05, 7);
            //Human human = new Human("Nikkie", "Rash",dayOfBirth );

            //Console.WriteLine(human.GetBirthDate);
            Console.WriteLine(human.LastName);
            Console.WriteLine(human.FirstName);
            Console.WriteLine("");

            string name = "Морти";
            string surname = "Ракун";
            Human humanTwo = new Human(name, surname);
            Console.WriteLine(humanTwo.LastName);
            Console.WriteLine(humanTwo.FirstName);
            Console.WriteLine("");

            Human humanThree = new Human(imiachko, surname);
            Console.WriteLine("Имя и фамилия третьего чувака: {0} {1}", humanThree.FirstName, humanThree.LastName);
            Console.WriteLine("");


            TextInput file = new TextInput();
            file.WriteToFile();
            file.WordCalculator(file.GetText, file.GetPath);



        }
    }

    class Human
    {
        private string lastName;
        private string firstName;
        private DateTime birthDate;

        public Human(string lastName, string firstName , DateTime birthDate)
        {
            this.birthDate = birthDate;
            //DateBirth = birthDate;
            this.lastName = lastName;
            this.firstName = firstName;
        }

        public string LastName
        {
            get
            {
                return lastName;
            }
            set
            {
                //if(value == null)
                    if (String.IsNullOrEmpty(value))
                    {
                    //Console.WriteLine("Неверно введена фамилия!");
                    throw new ArgumentException("lastDate");

                }
                else
                {
                    lastName = value;
                }
            }
        }

        public string FirstName

        {
            get
            {
                return firstName;
            }
            set
            {
                if (value == null)
                {
                    //Console.WriteLine("Неверно введена фамилия!");
                    throw new ArgumentException("firstDate");

                }
                else
                {
                    firstName = value;
                }
            }
        }

        public DateTime DateBirth
        {
            get
            {
                return birthDate;
            }

            set
            {
                if (value > DateTime.Now)

                {
                    //Console.WriteLine("Неверно введен возраст");
                    throw new ArgumentException("Invalid Date");
                }
                else
                {
                    birthDate = value;
                }
            }
        }
    }
}
